#ifndef DRAWING_MESH_H
#define DRAWING_MESH_H

#include "Common/Collections/Vector.h"
#include "Common/Collections/IIterable.h"
#include "Common/Algebra/Vec2.h"
#include "Common/Algebra/Vec3.h"

#include "Drawing/Model/Face.h"

namespace drawing {

	class Mesh
	{
	public:
		Mesh();

		Mesh(
			const cmn::IIterable<cmn::Vec3>& positions,
			const cmn::IIterable<cmn::Vec2>& texCoords,
			const cmn::IIterable<cmn::Vec3>& normals,
			const cmn::IIterable<Face>& faces );

		Mesh( const Mesh& other );
		Mesh& operator=( const Mesh& other );

		~Mesh();

		cmn::Vector<cmn::Vec3> Positions;	//	Vertex data
		cmn::Vector<cmn::Vec2> TexCoords;	//	Texture coordinates data
		cmn::Vector<cmn::Vec3> Normals;	//	Normal data
		cmn::Vector<Face> Faces;	//	Normal data
	};
}

#endif
